from django.conf import settings
from django.core.files.storage import Storage
"""
自定义文件存储类:
1, 定义类继承自Storage
2, 保证任何情况下都能初始化参数
3, 必须实现open,save方法
"""
class MyStorage(Storage):
    """自定义文件存储系统，修改存储的方案"""
    def __init__(self, base_url=None):
        """
        构造方法，可以不带参数，也可以携带参数
        :param base_url: Storage的IP
        """
        if not base_url: # 如果base_url不存在
            base_url = settings.BASE_URL  # base_url就等于dev中自定义
        self.base_url = base_url  # 确定就等于这个

    def open(self, name, mode='rb'):
        """打开图片的时候调用"""
        pass

    def save(self, name, content, max_length=None):
        """保存图片的时候调用"""
        pass

    def exists(self, name):
        """判断图片是否存在"""
        return False

    def url(self, name):
        """
        返回name所指文件的绝对URL
        :param name: 要读取文件的引用:group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg
        :return: http://192.168.103.158:8888/group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg
        """
        # return 'http://192.168.103.158:8888/' + name
        # return 'http://image.meiduo.site:8888/' + name
        return self.base_url + name